package com.dayuanit.dy15.lesson22.demo2;

import java.util.Arrays;

public class Test {

    public static void dogSort(Dog[] dogs) {
//        Arrays.sort(dogs);//被比较的对象一定要实现Comparable

//        Arrays.sort(dogs, new DogCompartor());//这是无侵入式的，通过比较器Comparator实现的，比较灵活，推荐。
        Arrays.sort(dogs, new DogComartorByName());
    }
    public static void main(String[] args) {
        Dog[] dogs = new Dog[5];
        dogs[0] = new Dog("wc001", 5);
        dogs[1] = new Dog("wc005", 9);
        dogs[2] = new Dog("bc003", 1);
        dogs[3] = new Dog("ac004", 7);
        dogs[4] = new Dog("wc002", 1);

        System.out.println("-----------排序前--------------");
        for (Dog dog : dogs) {
            System.out.println(dog);
        }

        //排序
        dogSort(dogs);

        System.out.println("-----------排序后--------------");
        for (Dog dog : dogs) {
            System.out.println(dog);
        }

        //总结：为对象比较大小 有两种方法 第一种：被比较的对象实现Comparable接口；第二种，自定义一个比较器，实现Comparator接口。
        //推荐使用第二种方式，它是无侵入式的，比较灵活。
        //Comparator是在java.util包下的，Comparable是在java.lang包下面。

    }
}
